package com.example.wifi2;

import android.annotation.SuppressLint;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Locale;

public class HistoryActivity extends AppCompatActivity {

    private ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_history);

        ListView listView = findViewById(R.id.lv_history);
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1); // 初始化适配器
        listView.setAdapter(adapter); // 设置适配器到 ListView

        // loadHistoryData(); // 首次加载在 onResume 中调用
    }

    @Override
    protected void onResume() {
        super.onResume();
        // 当Activity恢复可见时，重新加载历史记录，确保是最新的
        loadHistoryData();
    }

    private void loadHistoryData() {
        // 清空现有数据，准备加载新数据
        adapter.clear();

        // 查询所有历史记录，按时间倒序排列
        Cursor cursor = getContentResolver().query(
                HistoryContentProvider.CONTENT_URI,
                null,  // 返回所有列
                null,  // 无筛选条件
                null,
                HistoryContentProvider.HistoryEntry.COLUMN_TIMESTAMP + " DESC" // 按时间戳倒序
        );

        // 处理查询结果
        if (cursor != null) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());

            while (cursor.moveToNext()) {
                // 使用 getColumnIndexOrThrow 更安全，避免列名拼写错误导致崩溃
                try {
                    @SuppressLint("Range")
                    String ssid = cursor.getString(
                            cursor.getColumnIndex(HistoryContentProvider.HistoryEntry.COLUMN_SSID)
                    );
                    @SuppressLint("Range")
                    long timestamp = cursor.getLong(
                            cursor.getColumnIndex(HistoryContentProvider.HistoryEntry.COLUMN_TIMESTAMP)
                    );


                    String historyItem = ssid + " - " + sdf.format(new Date(timestamp));
                    adapter.add(historyItem);

                } catch (IllegalArgumentException e) {
                    // 捕获列名错误的异常，打印日志
                    e.printStackTrace();
                    // 或者向适配器添加错误信息
                    adapter.add("Error loading data: Column not found");
                }
            }
            cursor.close();

            // 通知适配器数据已改变，更新ListView显示
            adapter.notifyDataSetChanged();
        } else {
            // 如果查询结果为空
            adapter.add("没有找到历史记录");
            adapter.notifyDataSetChanged();
        }
    }
}


